package com.san.metadata.service;

import java.util.List;
import java.util.Map;

import org.quartz.SchedulerException;

import com.san.base.service.BaseService;
import com.san.metadata.domain.OperationDO;

/**
 * 任务管理接口服务
 * 
 */
public interface OperationMetadataService extends BaseService{
	
	/**
	 * 根据ID获取任务实体
	 */
	OperationDO getById(Long id);
	
	/**
	 * 根据条件查询任务列表
	 * @param map
	 * @return
	 */
	List<OperationDO> list(Map<String, Object> map);
	
	/**
	 * 根据条件查询任务数量
	 * @param map
	 * @return
	 */
	int count(Map<String, Object> map);
	
	/**
	 * 初始化调度任务
	 * @throws SchedulerException
	 */
	void initSchedule() throws SchedulerException;
	
	/**
	 * 更新任务启停状态
	 * @param taskId
	 * @param cmd
	 * @throws SchedulerException,Exception
	 */
	void changeStatus(Long taskId, String cmd) throws SchedulerException,Exception;
	
	/**
	 * 执行操作元数据
	 * @param operationId
	 * @throws Exception
	 */
	void runOperationJob(Long operationId);
	
	/**
	 * 技术元数据同步
	 * @param batchNo 批次号
	 * @param jobId 任务ID
	 * @throws Exception
	 */
	void dataCollect(Long batchNo,Long jobId) throws Exception;
	
	/**
	 * 管理元数据同步、处理
	 * @param batchNo 批次号
	 * @param jobId 任务ID
	 * @throws Exception
	 */
	void dataProcess(Long batchNo,Long jobId) throws Exception;
	
	/**
	 * 固化业务元数据
	 * @param batchNo
	 * @throws Exception
	 */
	void fixingBusiMetadata(Long batchNo,Long jobId)  throws Exception;
	
	/**
	 * 企查查技术元采集
	 * @param batchNo
	 * @param jobId
	 * @throws Exception
	 */
	void qichachaCollect(Long batchNo,Long jobId) throws Exception;
	
	/**
	 * 固化业务元数据
	 * @param batchNo
	 * @throws Exception
	 */
	// TODO: 待优化
	void earlyWarningCollect(Long batchNo,Long jobId)  throws Exception;
	
	/**
	 * 预警数据固化
	 * @param batchNo
	 * @throws Exception
	 */
	// TODO: 待优化
	void WarningsCollect(Long batchNo,Long jobId)  throws Exception;
}
